export enum CmdToolbox {
    Reflash,
    Attach,
    Halt,
    Reset,
    Run,
    Step,
    StepInto,
    StepOver,
    StepOut,
    LoadELF,
}

export enum CmdMemory {
    ReadU8,
    ReadU16,
    ReadU32,
}

export struct DissassembleLine {
    breakpoint: bool,
    address: int,
    assemble: string
}
export enum DissassembleScroll {
    Line,
    Page,
    Scroll,
    ToPC,
}
export enum CmdDissassemble {
    DissasmALL,
    Export,
}
export struct MemoryParam {
    address: string,
    offset: string,
    length: string,
	data: string
}

export enum CmdPeripherals {
    LoadSVD,
}

export struct CoreReg {
    name: string,
    value: string,
}

export struct Internal {
    Mode: string,
    Privilege: string,
    Stack: string,
    States: int,
    Sec: float,
}

export struct MCU_Core {
    Core: [CoreReg],
    Banked: [CoreReg],
    System: [CoreReg],
    Internal: Internal,
    BreakPoint: [int]
}

export struct PeripheralField {
    name: string,
    value: string,
    bit_offset: int,
    bit_width: int,
}

export struct PeripheralReg {
    name: string,
    value: string,
    addr_offset: int,
    fields: [PeripheralField]
}

export struct Peripheral {
    name: string,
    base_addr: int,
    registers: [PeripheralReg],
}